<script setup lang="ts">
import { computed } from "vue";
// defineProps接收外部传递过来的prop
const props = defineProps({
  // svg图标的颜色
  fill: {
    type: String,
    default: "#000",
  },
  // svg图标的宽度
  width: {
    type: String,
    default: "16px",
  },
  // svg图标的高度
  height: {
    type: String,
    default: "16px",
  },
  // xlink:href属性值的前缀
  prefix: {
    type: String,
    default: "#icon-",
  },
  // svg图标的名字
  svgName: {
    type: String,
    required: true,
  },
});
const xlinkHref = computed(() => {
  return props.prefix + props.svgName;
});
</script>

<template>
  <!--svg标签:图标外层容器节点，内部需要与use标签结合使用-->
  <!--use标签:xlink:href属性使用哪一个svg图标属性值务必使用#icon-svg图标名字，style属性svg图标的样式-->
  <svg :style="{width,height}">
    <use :xlink:href="xlinkHref" :fill="fill"></use>
  </svg>
</template>
